package com.zhilei.service;

import com.zhilei.pojo.Company;
import com.zhilei.pojo.CompanyPhoto;
import com.zhilei.pojo.bo.CreateCompanyBO;
import com.zhilei.pojo.bo.ModifyCompanyInfoBO;
import com.zhilei.pojo.bo.QueryCompanyBO;
import com.zhilei.pojo.bo.ReviewCompanyBO;
import com.zhilei.untils.PagedGridResult;

/**
 * <p>
 * 企业表 服务类
 * </p>
 *
 * @author 志磊
 * @since 2024-09-20
 */
public interface CompanyService {

    /**
     * 根据输入的公司名称查询公司信息
     *
     * @param fullName
     * @return
     */
    Company getByFullName(String fullName);

    /**
     * 创建公司
     *
     * @param createCompanyBO
     */
    String createNewCompany(CreateCompanyBO createCompanyBO);

    /**
     * 修改审核失败的公司重新发起审核
     *
     * @param createCompanyBO
     * @return
     */
    String resetCompany(CreateCompanyBO createCompanyBO);

    /**
     * 根据企业id查询企业信息
     *
     * @param companyId
     * @return
     */
    Company getById(String companyId);

    /**
     * 提交审核成功
     *
     * @param reviewCompanyBO
     */
    void SubmitForReview(ReviewCompanyBO reviewCompanyBO);

    /**
     * 根据用户表绑定的企业id查询企业表的最新数据
     *
     * @param hrInWhichCompanyId
     * @return
     */
    Company getHrInWhichCompany(String hrInWhichCompanyId);

    /**
     * 运营管理端查询企业状态
     *
     * @param asQueryCompany
     * @param page
     * @param limit
     * @return
     */
    PagedGridResult getCompanyList(QueryCompanyBO asQueryCompany,
                                   Integer page,
                                   Integer limit);

    /**
     * 审核成功企业
     *
     * @param reviewCompanyBO
     */
    void updateReviewCompany(ReviewCompanyBO reviewCompanyBO);

    /**
     * 修改企业简称
     *
     * @param modifyCompanyInfoBO
     */
    void updateCompanyShortName(ModifyCompanyInfoBO modifyCompanyInfoBO);

    /**
     * 根据企业id查询企业相册
     *
     * @param companyId
     */
    CompanyPhoto getCompanyPhotos(String companyId);
}
